home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / emulator / bsvc-1.000 / bsvc-1 / bsvc-1.0.4 / src / SimHector / cpu / RegisterSet.cxx < prev    next >
C/C++ Source or Header  |  1995-07-26  |  2KB  |  58 lines

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. // RegisterSet.cxx - The Hector 1600's Register Set
  4. //
  5. // By: Bradford W. Mott
  6. // December 3,1993
  7. //
  8. ///////////////////////////////////////////////////////////////////////////////
  9.  
  10. #include "RegisterSet.hxx"
  11.  
  12. ///////////////////////////////////////////////////////////////////////////////
  13. // Array of register information (User Registers Only)
  14. ///////////////////////////////////////////////////////////////////////////////
  15. RegisterData RegisterSet::register_data[] = {
  16.   {"R0",      "General purpose register 0"},
  17.   {"R1",      "General purpose register 1"},
  18.   {"R2",      "General purpose register 2"},
  19.   {"R3",      "General purpose register 3"},
  20.   {"R4",      "General purpose register 4"},
  21.   {"R5",      "General purpose register 5"},
  22.   {"R6",      "General purpose register 6"},
  23.   {"R7",      "General purpose register 7"},
  24.   {"R8",      "General purpose register 8"},
  25.   {"R9",      "General purpose register 9"},
  26.   {"R10",     "General purpose register 10"},
  27.   {"R11",     "Software Interrupt Vector"},
  28.   {"R12",     "Non-maskable Interrupt Vector"},
  29.   {"R13",     "Maskable Interrupt Vector"},
  30.   {"SP",      "Stack Pointer"},
  31.   {"PC",      "Program Counter"}
  32. };
  33.  
  34. ///////////////////////////////////////////////////////////////////////////////
  35. // The Constructor
  36. ///////////////////////////////////////////////////////////////////////////////
  37. RegisterSet::RegisterSet()
  38.     : number_of_user_registers(sizeof(register_data)/sizeof(RegisterData)),
  39.       number_of_registers(sizeof(register_data)/sizeof(RegisterData)+2)
  40. {
  41.   // Allocate array for register values
  42.   register_value=new unsigned long[number_of_registers];
  43.  
  44.   // Clear all of the registers
  45.   for(int t=0;t<number_of_registers;++t)
  46.     register_value[t]=0;
  47. }
  48.  
  49. ///////////////////////////////////////////////////////////////////////////////
  50. // The Destructor
  51. ///////////////////////////////////////////////////////////////////////////////
  52. RegisterSet::~RegisterSet()
  53. {
  54.   // Deallocate the register value array;
  55.   delete[] register_value;
  56. }
  57.  
  58.